package br.trainee.web.vo;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

@Entity
@Table(name="endereco_clinica")
@NamedQueries(value={
		
		@NamedQuery(name="queryBuscarEnderecoPorIdClinica", query="select e from EnderecoClinicaVO e where e.clinica.idPessoa =:idClinica and e.status.tipoStatus =:tipoStatus"),
		@NamedQuery(name="queryBsucarEnderecoPorId", query="select e from EnderecoClinicaVO e where e.idEnderecoClinica =:idEnderecoClinica")
})
public class EnderecoClinicaVO{
	
	@Id
	@SequenceGenerator(name="sqEnderecoClinica", sequenceName="sq_endereco_clinica", allocationSize=1)
	@GeneratedValue(strategy= GenerationType.SEQUENCE, generator="sqEnderecoClinica")
	@Column(name="id_endereco_clinica")
	private Long idEnderecoClinica;
	
	@Column(name="bairro_clinica")
	private String bairroClinica;
	
	@Column(name="logradouro_clinica")
	private String logradouroClinica;
	
	@Column(name="complemento_clinica")
	private String complementoClinica;
	
	@Column(name="cep_clinica")
	private String cepClinica;
	
	@ManyToOne(fetch=FetchType.EAGER)
	@JoinColumn(name="id_clinica", referencedColumnName="id_clinica")
	private ClinicaVO clinica;
	
	@ManyToOne(fetch=FetchType.EAGER)
	@JoinColumn(name="id_cidade", referencedColumnName="id_cidade")
	private CidadeVO cidade;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="id_status", referencedColumnName="id_status")
	private StatusVO status;
	
	
	public EnderecoClinicaVO() {
	
		
	}


	public Long getIdEnderecoClinica() {
		return idEnderecoClinica;
	}
	public void setIdEnderecoClinica(Long idEnderecoClinica) {
		this.idEnderecoClinica = idEnderecoClinica;
	}


	public String getBairroClinica() {
		return bairroClinica;
	}
	public void setBairroClinica(String bairroClinica) {
		this.bairroClinica = bairroClinica;
	}


	public String getLogradouroClinica() {
		return logradouroClinica;
	}
	public void setLogradouroClinica(String logradouroClinica) {
		this.logradouroClinica = logradouroClinica;
	}


	public String getComplementoClinica() {
		return complementoClinica;
	}
	public void setComplementoClinica(String complementoClinica) {
		this.complementoClinica = complementoClinica;
	}


	public String getCepClinica() {
		return cepClinica;
	}
	public void setCepClinica(String cepClinica) {
		this.cepClinica = cepClinica;
	}


	public ClinicaVO getClinica() {
		return clinica;
	}
	public void setClinica(ClinicaVO clinica) {
		this.clinica = clinica;
	}


	public CidadeVO getCidade() {
		return cidade;
	}
	public void setCidade(CidadeVO cidade) {
		this.cidade = cidade;
	}


	public StatusVO getStatus() {
		return status;
	}
	public void setStatus(StatusVO status) {
		this.status = status;
	}
	
	

}
